from django.db import models
from django.contrib.auth.models import User
# Create your models here.
#定义数据模型。例如职位模型。网站上发布的职位信息至少应包含职位类型、职位名称、办公地点、职位描述、职位要求等字段
JobTypes = [
    (0, '开发类'),
    (1, '产品类'),
    (2, '运营类'),
    (3, '设计类')
]


Cities = [
    (0, '北京'),
    (1, '上海'),
    (2, '杭州'),
    (3, '深圳')
]

class Job(models.Model):
    # 定义职位类型字段，　该字段不能为空，故blank=False；该字段在页面上显示为"职位类型"，故verbose_name="职位类型"。
    # 职位类型是预定义的几个类型，故choices=JobTypes，JobTypes应是开发时就定义好的二元组列表
    job_type = models.SmallIntegerField(blank=False, verbose_name="职位类型", choices=JobTypes)
    job_name = models.CharField(blank=False, max_length=256, verbose_name="职位名称")
    job_base = models.SmallIntegerField(blank=False, verbose_name="工作城市", choices=Cities)
    job_responsibility = models.TextField(verbose_name="工作职责", max_length=1024)
    job_requirement = models.TextField(verbose_name="职位要求", max_length=1024, blank=False)
    # 下面定义职位信息发布者（可能是某个使用这个系统的HR)这一　属性
    # 这一字段是文本没有错，但是不能让用户自己填写，而是应该通过外键引用，引用“用户”模型来获得用户名
    # 由于使用了外键，要定义好，当删除这一记录时，要制定行为，是这个字段置空，还是级联删除，还是忽略这条数据
    creator = models.ForeignKey(User, verbose_name="创建人", on_delete=models.SET_NULL, null=True) # ocn_delete引用的是函数，所以不加括号
    created_date = models.DateTimeField(verbose_name="创建时间")
    modified_date = models.DateTimeField(verbose_name="修改时间")

    # 以上就完成了职位这个模型的定义。要想在dJANGO的管理后台看到这个模型，还要在admin.py中进行注册